Repair existing SDDM Qt5 theme selections with missing greeter libraries - #10663
Repair existing SDDM Qt5 theme selections with missing greeter libraries#10663surim0n wants to merge 2 commits into
Conversation
Fresh Omarchy 4.x has no Qt5 packages. SDDM falls back to the Qt5 greeter (/usr/bin/sddm-greeter) for any theme whose metadata.desktop does not declare QtVersion=6. On a 4.x install that leaves the login screen permanently black. Add a migration that, on update, detects when the active SDDM theme is not Qt6 and the Qt5 greeter cannot run (missing shared libraries), then resets Current= back to the packaged omarchy theme. - migrations/1788380505.sh: the guard - test/shell.d/sddm-qt6-guard-test.sh: coverage for safe, unsafe, runnable-Qt5, custom-Qt6, and no-theme cases Fixes omacom#10302. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Resolve service-locale-aware configuration precedence, respect theme metadata and safe fallbacks, and retain recovery copies outside the loaded directories. Refuse ambiguous inputs instead of guessing. Cover the repair, malformed inputs, backups and migration lifecycle with behavioral regressions. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
|
Reworked in 8fa0aec and kept draft. The earlier migration used incorrect precedence and could overwrite a working theme or delete an existing .bak. Those defects now have behavioral coverage and the unsafe backup operation is removed. The replacement uses effective settings, conservative metadata parsing, daemon-locale-aware ordering, retained recovery copies outside loaded directories, and explicit failure rather than guessing. Five original scenarios plus 39 Linux tests pass. This is a one-time repair; live Arch/SDDM login/reboot validation remains required. |
|
Full-system follow-up: 8fa0aec now passed against real SDDM 0.21.0-7/Qt6 6.11.2 in a disposable x86_64 Arch VM. Reproduced black Maya/Qt5 startup with genuinely missing libraries; the repair used the live service locale, retained the exact config backup, and did not restart the daemon. A validation restart rendered the Omarchy Qt6 greeter; a custom Qt6 theme remained unchanged. Inspected focus/masked-input screenshots and rebooted back to the working greeter. All 39 regressions passed on the VM. This was Arch/Xorg plus the Omarchy theme, not full Omarchy/Hyprland login acceptance; that limit is documented. Marking ready for review. |
Summary
Addresses #10302 with a one-time repair for an existing selected Qt5 theme whose executable greeter has missing shared libraries. This is not a recurring guard and does not restore the Qt5 package stack.
Changes
Validation
Actual SDDM and reboot
Head 8fa0aec tested in a disposable full-system x86_64 Arch VM: systemd 261.2, SDDM 0.21.0-7, Qt6 6.11.2 and ICU 78.3.
Scope limits
The VM ran Arch plus actual SDDM and the Omarchy theme under Xorg, not a full Omarchy/Hyprland installation or an authenticated graphical-user login. The minimal display setup logged a default-cursor warning; successful greeter starts had no Qt6 dependency/QML-load errors. Relative ThemeDir assumes the standard service working directory /; custom overrides are outside verified scope.
Generated with Devin